WEBVTT 1 00:00:01.680 --> 00:00:03.600 We introduce ScaffoldSketch 2 00:00:04.560 --> 00:00:09.040 a system that makes it possible  to draw accurate 3D models in VR 3 00:00:12.000 --> 00:00:18.080 People like to draw in VR because it  is immersive and the output is in 3D  4 00:00:19.680 --> 00:00:21.680 but it's really hard to be accurate 5 00:00:24.560 --> 00:00:26.960 Previous work has already proved this,   6 00:00:27.680 --> 00:00:32.640 more degrees of freedom, lack of  physical surface, and depth issue 7 00:00:32.640 --> 00:00:36.720 these all contribute to larger  errors directly drawing in VR 8 00:00:38.160 --> 00:00:41.040 So how do people draw accurately in 2D? 9 00:00:42.000 --> 00:00:45.040 product designers can draw very accurate sketches 10 00:00:46.080 --> 00:00:48.320 when they draw with pen and paper 11 00:00:48.320 --> 00:00:53.280 they will first draw construction  lines or known as scaffolds 12 00:00:56.560 --> 00:00:59.120 then they will draw the object shape on top 13 00:01:00.560 --> 00:01:05.760 the scaffolds will serve as visual  guidance to make the shape strokes accurate 14 00:01:06.640 --> 00:01:11.840 this is how industrial designers  can draw an accurate trash can 15 00:01:13.600 --> 00:01:19.600 there are also related work studying or utilizing  this scaffold plus shape way of sketching 16 00:01:20.960 --> 00:01:23.840 Can we borrow this approach directly in VR? 17 00:01:25.120 --> 00:01:29.760 Even with the help of scaffolds  people still cannot draw accurately 18 00:01:29.760 --> 00:01:31.520 the reason is similar as before 19 00:01:32.160 --> 00:01:36.480 with more degrees of freedom it  requires higher motion control 20 00:01:38.320 --> 00:01:41.760 even the scaffolds are not  perfectly aligned with each other 21 00:01:42.480 --> 00:01:48.080 if we could eliminate these issues we would  have a nice way to draw accurately in VR 22 00:01:50.560 --> 00:01:55.760 We introduce ScaffolSketch a system helps people draw accurately in VR   23 00:01:56.320 --> 00:01:59.120 by auto-correcting scaffolds and shape strokes 24 00:02:01.040 --> 00:02:04.320 the scaffolds are straight  lines with special relationships   25 00:02:05.200 --> 00:02:09.920 so they can snap to each other based on  the endpoints, directions, and lengths. 26 00:02:10.800 --> 00:02:15.440 we also support tick on the scaffold  lines to mark intermediate positions   27 00:02:15.440 --> 00:02:18.240 as designers often do with pen and paper 28 00:02:20.320 --> 00:02:25.360 here's an example the black lines are existing scaffolding lines 29 00:02:25.360 --> 00:02:30.160 when the user draw a new scaffold line  we can consider these relationships 30 00:02:32.320 --> 00:02:35.840 however relationships may conflict with each other 31 00:02:36.640 --> 00:02:42.720 previous attempts to resolve conflicts  often use heuristics or don't satisfy any 32 00:02:44.160 --> 00:02:47.920 we resolve with an iteratively  re-weighed least square scheme 33 00:02:49.360 --> 00:02:52.640 the weights will be updated after each iteration  34 00:02:52.640 --> 00:02:56.800 the more satisfiable constraints  will be giving higher weights 35 00:02:58.160 --> 00:03:02.080 and the less satisfied will have smaller weights 36 00:03:02.080 --> 00:03:06.720 in the end the weights will  either be infinity or zero   37 00:03:06.720 --> 00:03:10.080 that is satisfied or discard for the constraints 38 00:03:11.840 --> 00:03:16.560 The shape strokes are smooth curves  or lines attached to the scaffolds 39 00:03:16.560 --> 00:03:20.880 mainly attached to the endpoints,  midpoints, or the user marked positions. 40 00:03:21.440 --> 00:03:23.680 and usually tangent to those points 41 00:03:25.360 --> 00:03:31.840 for the same scaffold square different user  input will be auto-correct to different results 42 00:03:32.720 --> 00:03:36.080 the shape strokes are auto-correct  based on the scaffolds and  43 00:03:36.080 --> 00:03:37.345 the user's drawing 44 00:03:37.345 --> 00:03:41.280 just like how the  scaffolds support shape strokes in 2D 45 00:03:44.240 --> 00:03:47.840 we also support space curves as shown here 46 00:03:51.360 --> 00:03:57.840 and with more tick marks as intermediate positions  the auto-correct result will also be different 47 00:03:59.600 --> 00:04:04.400 once we have the beautified scaffolds,  now if the user drawn a shape curve 48 00:04:06.960 --> 00:04:10.960 we can find whether the curve  is tangent to the intersections   49 00:04:11.760 --> 00:04:16.960 thus we can have the curve directions  and positions at those key points 50 00:04:18.080 --> 00:04:20.640 the positions and directions are fixed   51 00:04:20.640 --> 00:04:21.497 at those points 52 00:04:21.497 --> 00:04:24.240 but we can change  the magnitude of the tangents 53 00:04:25.600 --> 00:04:29.760 different magnitudes of tangents  will give us different curves 54 00:04:31.680 --> 00:04:39.520 and our goal is to find the most smooth curve that is the one of minimal variation of curvature 55 00:04:41.520 --> 00:04:44.560 and if the curve is not tangent to the scaffolds  56 00:04:44.560 --> 00:04:47.440 we will take the directions  from the original curve 57 00:04:49.040 --> 00:04:55.840 here is an example of the input scaffolds  and this is the auto-correct result 58 00:04:56.400 --> 00:05:03.600 the shape strokes are based on the scaffolds  and this corresponding auto-correct result 59 00:05:06.080 --> 00:05:11.280 we did a remote user study with six  participants: all industrial designers 60 00:05:12.000 --> 00:05:17.040 they used our system in two conditions:  within and without auto-correct 61 00:05:17.040 --> 00:05:21.600 they all expressed that auto correct  helped them draw more accurately 62 00:05:21.600 --> 00:05:24.400 and they want to use ScaffoldSketch in the future 63 00:05:25.280 --> 00:05:26.880 see the paper for details 64 00:05:28.800 --> 00:05:34.880 limitations and future work, we didn't consider  surfacing, which is also very important 65 00:05:35.520 --> 00:05:40.880 the current output is curved networks,  but surfaces are often needed 66 00:05:41.600 --> 00:05:45.920 without surfacing it's hard to  draw details or shading strokes 67 00:05:47.520 --> 00:05:51.360 and also current shape strokes  are guided by the scaffolds,   68 00:05:51.360 --> 00:05:53.920 so the user cannot draw freeform strokes 69 00:05:54.560 --> 00:05:59.840 I think with all these features combined  it will make a better user experience   70 00:05:59.840 --> 00:06:02.320 and more vivid 3D models 71 00:06:04.640 --> 00:06:08.080 In conclusion, ScaffoldSketch enables   72 00:06:08.080 --> 00:06:13.680 precise 3D curve drawing by decomposing or  auto-correct into scaffold and shape stages 73 00:06:14.640 --> 00:06:20.160 it lets people transfer industrial  design drawing skills into 3D 74 00:06:20.160 --> 00:06:25.200 and it resolves conflicting constraints  with an iterative re-weighed scheme 75 00:06:27.440 --> 00:06:30.240 thank you